// Common

body {
	overflow-x: hidden;
}

* {
	.antialiased;
}

a {
	.transition(color, @anim);
	text-decoration: none;
	&:hover {
		.transition(color, @anim);
	}
}

.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

// Layout

.main-header {
	position: fixed;
	left: 0px;
	top: 0px;
	width: 100%;
	height: 60px;
	background: #fff;
	padding: 10px 0 0 33px;
	
	.searchbar-wrap {
		float: right;
		padding: 6px;
		border: none;
		margin-top: auto;
		margin-bottom: auto;
		margin-right: 16px;
		font-size: 17px;	  
	}
	.searchbar-input {
		font: monospace;
	}

	.pixijs-logo {
		width: 85px;
		height: 33px;
		background: url(../../img/logo.svg);
		background-size: 100%;
		background-repeat:no-repeat;
		background-position: center center;
		display: inline-block;
	}

	.hamburger {
		display: inline-block;
		position: absolute;
		right: 15px;
		top: 11px;

		width: 30px;
		height: 30px;

		i {
			width: 22px;
			height: 2px;
			background: @pink500;
			.origin(50%, 50%);
			position: absolute;
			left: 50%;
			top: 50%;
			margin: -2px 0 0 -11px;

			&#line1 {
				.translateY(-8px);
			}

			&#line3 {
				.translateY(8px);
			}
		}
	}
}

.main-nav {
	position: fixed;
	left: -250px;
	top: 50px;
	width: 250px;
	bottom: 0px;
	overflow: auto;
	background: @blue800;
	padding: 25px 0 50px;
	z-index: 2;
	.transition(left, @anim);
	-webkit-overflow-scrolling: touch;

	&.mobile-open {
		left: 0px;
    }

    .select-major-version {
        display: block;
        width: 100%;
        font-size: 14px;
        font-weight: 500;
        padding: 0px 20px 20px;
        letter-spacing: 0.05em;
        text-align: center;
        color: white;
        .versions {
            font-size: 15px;
            a {
                color: @blue300;
                &:hover, &.open {
                    color: #fff;
                    .transition(color, @anim);
                }
            }
            .selected {
                color: @pink300;
            }
        }
    }

	.main-menu {
		.section {
			display: block;
			width: 100%;
			height: 32px;
			font-size: 14px;
			font-weight: 500;
			line-height: 14px;
			padding: 9px 30px 0;
			color: @blue200;
			text-transform: uppercase;
			letter-spacing: 0.05em;
			background: url(../../img/arrow-right-default.png) 15px 12px no-repeat;
			cursor: pointer;

			&:hover, &.open {
				color: #fff;
				.transition(color, @anim);
			}

			/*&:hover {
				background-image: url(../../img/icon-arrow-down-hover.png);
			}*/

			&.open {
				background: url(../../img/arrow-down-default.png) 14px 13px no-repeat;

				/*&:hover {
					background-image: url(../../img/icon-arrow-up-hover.png);
				}*/
			}
		}

		ul {
			.nolist;
			display: block;
			margin: 0px;
			padding: 5px 0 10px;
			display: none;

			li {
				display: block;
				width: 100%;
				height: 32px;
				font-size: 14px;
				font-weight: 500;
				line-height: 14px;
				padding: 9px 30px 0;
				cursor: pointer;
				.innerShadow(0, 0, 0, 0, @pink400);
				.transition(all, @anim);

                &.invalid {
                    color: #6C747F;
                }

				&:hover {
					color: #fff;
				}

				&.selected {
					color: #fff;
					.innerShadow(2px, 0, 0, 0, @pink400);
					.transition(all, @anim);
                }
			}
		}
	}

	.about {
		margin-top: 70px;
		padding-left: 17px;

		.goodboy-logo {
			width: 99px;
			height: 23px;
			background: url(../../img/goodboy-logo.png);
			background-size: 99px 23px;
			display: block;
			margin-bottom: 12px;

			img {
				width: 100%;
				height: 100%;
				display: block;
			}
		}
	}
}

.main-content {
	position: fixed;
	left: 0px;
	top: 50px;
	right: 0px;
	bottom: 0px;
	background: @blue900;
	overflow: auto;
	padding: 0 10px;
	z-index: 1;
	body.normal & {
        .transition(left, @anim);
    }
	-webkit-overflow-scrolling: touch;
    .main-tabs,
    .redirect {
        display: none;
    }
	.example-frame {
		width: 100%;
		max-width: 800px;
		background: @blue800 url(../../img/tile.png) 56px 56px;
        position: relative;

		.sizer {
			position: relative;
			width: 100%;
            padding-top: 75%;

			iframe {
				position: absolute;
				left: 0px;
				top: 0px;
				width: 100%;
				height: 100%;
				border: 0;
			}
		}

		.reload {
			width: 64px;
			height: 64px;

			position: absolute;
			z-index: 2;
			left: 50%;
			top: 100%;
			margin: -26px 0 0 -32px;
			cursor: pointer;

            .transform(translate3d(0, 0, 0));

			svg {
				position: absolute;
				left: 50%;
				top: 50%;
				width: 24px;
				height: 24px;
				margin: -10px 0 0 -10px;
				z-index: 3;

				path {
					fill: @pink400;
					.transition(fill, @anim);
				}

				.transition(all, @anim);
				.rotate(0deg);
			}

			&:hover {
				svg {
					path {
						fill: @pink600;
					}
					.rotate(180deg);
				}
			}

			&:before {
				position: absolute;
				left: 0px;
				top: 0px;
				width: 100%;
				height: 100%;
				background: @blue900;
				border: 2px solid @blue300;
				z-index: 2;
				content: "";
				display: block;
			}

			&:after {
				position: absolute;
				left: 5px;
				top: 6px;
				width: 100%;
				height: 100%;
				background: transparent;
				border: 2px solid @blue300;
				z-index: 1;
				content: "";
				display: block;
			}
		}
	}

	.code {
		width: 100%;
		max-width: 800px;
		margin-top: 75px;
		border: 1px solid @blue700;
		height: auto;

		textarea {
			background: transparent;
			border: 0px;
            resize: none;
            height: 0px;
            overflow: hidden;
		}

		h3 {
			height: 50px;
			margin: 0px;
			border-bottom: 1px solid @blue700;
			font-size: 16px;
			line-height: 16px;
			padding: 17px 0 0 22px;
			font-weight: 400;
			color: @blue300;
		}

		.CodeMirror {
			background: #272d37 url(../../img/code-lines.png) 0 5px;
			font-family: 'Roboto Mono';
			font-weight: 400;
			font-size: 14px;
			line-height: 20px;
			letter-spacing: 0.05em;
			color: #fff;
			height: auto;

			.cm-keyword, .cm-string, .cm-atom, .cm-variable-2 {
				color: @pink200;
			}

			.cm-def, .cm-number {
				color: @blue100;
			}

			.cm-comment {
				color: @blue300;
			}

			pre {
				padding: 0 4px 0 14px;
			}
		}

		.CodeMirror-gutters {
			background: #272d37;
			border-right: 1px solid @blue700;
		}

		.CodeMirror-linenumber {
			font-family: 'Roboto', sans-serif;
			font-weight: 400;
			font-size: 12px;
			color: @blue300;
		}

		.CodeMirror-scroll {
			height: auto;
			overflow-y: hidden;
			overflow-x: auto;
			margin: 0 0 -30px 0;
		}

		.footer {
			background: @blue800;
			border-top: 1px solid @blue700;
			padding: 8px 30px 18px 12px;
			text-align: center;

			.select-group {
				display: inline-block;
				margin: 10px 18px 0;
				text-align: left;

				.label, .select {
					display: inline-block;
					vertical-align: middle;
				}

				.label {
					font-size: 14px;
					line-height: 14px;
					color: @blue300;
					margin: 10px 15px 10px 0;
				}

				.select {
					height: 40px;
					position: relative;
					width: 175px;
					background: url(../../img/icon-arrow-down.png) 155px 18px no-repeat;
					z-index: 10;

					&.open {
						background-image: url(../../img/icon-arrow-up.png);
					}

					.current {
						display: block;
						width: 100%;
						height: 100%;
						border: 2px solid @blue300;
						color: #fff;
						font-size: 12px;
						line-height: 12px;
						padding: 13px 0 0 13px;
					}

					ul {
						background: @blue800;
						.nolist;
						display: block;
						position: absolute;
						left: 0px;
						bottom: 100%;
						border: 2px solid @blue300;
						border-bottom: 0px;
						width: 100%;
						display: none;

						li {
							display: block;
							width: 100%;
							height: 32px;
							padding: 10px 13px 0 13px;
							font-size: 12px;
							line-height: 12px;
							color: #fff;
							.transition(all, @anim);
							cursor: pointer;

							&:hover, &.selected {
								color: @pink300;
								background: @blue900;
							}
						}
					}
				}
			}

			.button {
				display: inline-block;
				font-size: 12px;
				color: #fff;
				background: @pink500;
				padding-left: 25px;
				padding-right: 25px;
				border: 0px;
				text-transform: uppercase;
				height: 40px;
				letter-spacing: 0.05em;
				.transition(background-color, @anim);
				margin-top: 10px;

				&:hover, &:active, &:focus {
					background-color: @pink700;
					outline: none;
				}
			}
		}
	}

	.submit {
		font-size: 16px;
		font-weight: 300;
		margin: 30px 0 40px;
		color: @blue300;

		a {
			color: #fff;

			&:hover {
				color: @pink400;
			}
		}
	}
}

// Typography
body {
	font-family: 'Roboto', sans-serif;
	font-weight: 400;
	font-size: 13px;
	line-height: 19px;
	color: @blue300;
    background-color: #272d37;
}

body.embed  {
    background-color: black;
    .main-content {
        overflow: hidden;
        left: 0px;
        bottom: auto;
        top: 0;
        height: 100%;
        padding: 0;
        background: transparent;
        .example-frame {
            max-width: none;
            top: 50%;
            transform: translateY(-50%);
        }

        .main-tabs {
            display: block;
            position: fixed;
            top: 2px;
            left: 2px;
            z-index: 1;
            .main-tab {
                background: @blue900;
                color: @pink300;
                height: 35px;
                line-height: 0;
                font-size: 14px;
                font-weight: bold;
                padding: 0 15px;
                border: 0;
                appearance: none;
                border-bottom: 2px solid transparent;
                cursor: pointer;
                outline: none;
                transition: background-color 0.3s, border-color 0.3s;
                &.selected {
                    border-color: @pink300;
                }
                &:hover {
                    color: @pink600;
                }
            }
        }
        .reload {
            margin-top: -32px;
            top: 50%;
        }

        .redirect {
            position: fixed;
            display: block;
            top: 2px;
            right: 2px;
            z-index: 1;
            background: @blue900;
            width: 45px;
            height: 35px;
            img {
                margin: 6px 0 0 14px;
                width: 20px;
                height: 20px;
            }
            transition: opacity 0.3s;
            &:hover img {
                opacity: 0.8;
            }
        }
    }

    .content-controls {
        width: 100%;
        position: fixed;
        top: 40px;
        left: 0;
        bottom: 0;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        .code {
            max-width: none;
            margin-top: 0;
            border: 0;
            & > .CodeMirror {
                font-size: 13px;
            }
        }
        .submit, .footer {
            display: none;
        }
    }

    #example-title,
    .main-header,
    .main-nav,
    .code-header,
    &.nocode .content-controls,
    &.nocode .main-tabs,
    &.autoplay .reload,
    &.noredirect .redirect {
        display: none;
    }

    &.view-code .example-frame,
    &.view-preview .content-controls {
        opacity: 0;
        pointer-events: none;
        height: 1px;
        overflow: hidden;
    }
}

h1 {
	font-weight: 400;
	font-size: 30px;
	line-height: 30px;
	color: #fff;
	letter-spacing: (-10/1000)em;
	margin: 20px 0 20px;
}

.blue50 { color: @blue50; }
.blue100 { color: @blue100; }
.blue200 { color: @blue200; }
.blue300 { color: @blue300; }
.blue400 { color: @blue400; }
.blue500 { color: @blue500; }
.blue600 { color: @blue600; }
.blue700 { color: @blue700; }
.blue800 { color: @blue800; }
.blue900 { color: @blue900; }

.pink50 { color: @pink50; }
.pink100 { color: @pink100; }
.pink200 { color: @pink200; }
.pink300 { color: @pink300; }
.pink400 { color: @pink400; }
.pink500 { color: @pink500; }
.pink600 { color: @pink600; }
.pink700 { color: @pink700; }
.pink800 { color: @pink800; }
.pink900 { color: @pink900; }

.margin-top-0 { margin-top: 0px !important; }
.margin-top-5 { margin-top: 5px !important; }
.margin-top-10 { margin-top: 10px !important; }
.margin-top-15 { margin-top: 15px !important; }
.margin-top-20 { margin-top: 20px !important; }
.margin-top-25 { margin-top: 25px !important; }
.margin-top-30 { margin-top: 30px !important; }
.margin-top-35 { margin-top: 35px !important; }
.margin-top-40 { margin-top: 40px !important; }
.margin-top-45 { margin-top: 45px !important; }
.margin-top-50 { margin-top: 50px !important; }
.margin-top-55 { margin-top: 55px !important; }
.margin-top-60 { margin-top: 60px !important; }
.margin-top-65 { margin-top: 65px !important; }

.margin-bottom-0 { margin-bottom: 0px !important; }
.margin-bottom-5 { margin-bottom: 5px !important; }
.margin-bottom-10 { margin-bottom: 10px !important; }
.margin-bottom-15 { margin-bottom: 15px !important; }
.margin-bottom-20 { margin-bottom: 20px !important; }
.margin-bottom-25 { margin-bottom: 25px !important; }
.margin-bottom-30 { margin-bottom: 30px !important; }
.margin-bottom-35 { margin-bottom: 35px !important; }
.margin-bottom-40 { margin-bottom: 40px !important; }
.margin-bottom-45 { margin-bottom: 45px !important; }
.margin-bottom-50 { margin-bottom: 50px !important; }
.margin-bottom-55 { margin-bottom: 55px !important; }
.margin-bottom-60 { margin-bottom: 60px !important; }
.margin-bottom-65 { margin-bottom: 65px !important; }
